wayland/popup: Handle late received reposition feedback
authorJonas Ådahl <jadahl@gmail.com>
Mon, 27 Mar 2023 19:27:44 +0000 (21:27 +0200)
committerJonas Ådahl <jadahl@gmail.com>
Mon, 27 Mar 2023 19:27:44 +0000 (21:27 +0200)
commitc88f2caa044d99bb6ffcd2161fac1dfddba71066
tree5b008a3fd1a4c8fe6475b0f35a0e1653ef4ff7ec
parent506206e1bd743de333f543782f5f37c2646dcc7a
wayland/popup: Handle late received reposition feedback

If we map, reposition, unmap, remap, the reposition feedback from the
last time a popup was mapped might be received while we're dealing with
the new version of the popup. At this point, the old reposition token
has no meating, so lets drop it. Also reset the reposition tokens when
creating new protocol objects, so that the reposition token are as if
we're in the initial state.

This fixes an issue where we'd get stuck if repeatedly smashing a button
that'd create popups that'd immediately get dismissed by the compositor.
gdk/wayland/gdkpopup-wayland.c